Produits tiers

Formation - Ewon - 01/2022

Applicatif M340

Le dialogue entre l’automate M340 et le modem Flexy 205 se fait en Modbus - TCP.
On utilise aussi une séquence permettant de valider les différentes options.

Demande Spécification
1 numéro d’envoi du SMS est paramétrable par l’automate
2 demande d’envoi du SMS par l’automate
3 modem inactive, surveillance d’un mot de vie appartenant à un automate
4 coupure de tension du modem, envoi d’un SMS
5 modem peut recevoir un message et le signaler à l’automate

5.1 Numéro d’envoi du SMS

Demande Spécification
1 numéro d’envoi du SMS est paramétrable par l’automate

5.1.1 Configuration de l’eWON

Configuration de eWON

Figure 10 : Configuration de eWON

Déclarer de deux tags nommés API_ENVOI_Num_tel et API_ENVOI_Indic_Pays contenant le n° de téléphone complet pour la réception du SMS.
Exemple :
API_ENVOI_Num_tel = 6 66 92 55 97 soit le n° sans le 0 réservé pour les communication interne en France.
API_ENVOI_Indic_pays = 33 est l’indicatif pour les communications en France le "+" devant 33 est ajouté automatiquement par l’eWON.

Conf Tag API_ENVOI_Num_tel

Figure 11 : Conf Tag API_ENVOI_Num_tel

Visibilité du Tag

Figure 12 : Visibilité du Tag

Le tag API_ENVOI_Num_tel possède l’adresse Modbus registre 202. Attention : ne pas oublier de cocher ☑ Utiliser le format 32-bit pour la communication Modbus.
Le tag API_ENVOI_Indic_pays possède l’adresse Modbus registre 201.

Les tags eWON sont par défaut en interne au format 32 bits mais transmis en 16 bits par le Modbus.

5.1.2 Configuration du M340 version 2

M340 LD EWON_FLEXY_1

Figure 13 : M340 LD EWON_FLEXY_1

Un DFB a été réalisé pour les échanges entre l’eWON et l’automate :

DFB d’échange eWON / PLC

Figure 14 : DFB d’échange eWON / PLC

Deux variables correspondant aux 2 tags de l’eWON sont créées et mises en entrée du DFB.L’envoi de ces variables vers l’eWON se fait avec la partie envoi du SMS.

5.2 Demande envoi SMS par l’automate

Demande d’envoi du SMS par l’automate :

Exigence Spécification
2 Table d’envoi de 160 caractères contenant un message SMS.Cette table est communicante avec un automate. Un mot de gestion permet la demande d’envoi du SMS par l’automate et le retour par le modem de l’opération.

5.2.1 Configuration de l’eWON

Déclaration de 160 tags nommés API_ENVOI_MSG1 à API_ENVOI_MSG160 pour la gestion du message SMS.

tag API_ENVOI_MSG1 à 160

Figure 15 : tag API_ENVOI_MSG1 à 160

Le tag API_ENVOI_MSG1 possède l’adresse Modbus registre 1.
Le tag API_ENVOI_MSG160 possède l’adresse Modbus registre 160.

Déclaration du tag API_ENVOI_DmdeEnvoi pour la demande automate d’envoi du message SMS : registre Modbus 204.
Déclaration du tag API_ENVOI_StatusEnvoi pour l’acquittement par l’eWON de la demande automate d’envoi du message SMS : registre Modbus 205.

Tag API_ENVOI_DmdeEnvoi

Figure 16 : Tag API_ENVOI_DmdeEnvoi

5.2.2 Configuration du M340

Configuration M340

Figure 17 : Configuration M340

Un DFB a été réalisé pour les échanges entre l’eWON et l’automate.

DMDE_ENVOI messagesms ok_envoi

Figure 18 : DMDE_ENVOI messagesms ok_envoi

  • 1 variable DMDE_ENVOI correspondant au 1 tag API_ENVOI_DmdeEnvoi ;
  • 1 variable messagesms contentant le message du SMS au format chaîne ;
  • 1 bit ok_envoi indiquant la réussite de l’opération.

5.2.3 Basic EnvoiMessageApi eWON M340

Par défaut, un programme eWON BASIC IDE existe : Cyclic Section et Init Section.

eWON IDE Cyclic et Init en BASIC

Figure 19 : eWON IDE Cyclic et Init en BASIC

Dans la section Init, lancer la surveillance de la variable API_ENVOI_DmdeEnvoi avec la fonction ONCHANGE. Lorsque que la variable passe à 1, le programme saute vers le label EnvoiMessageApi.

On attend également le retour d’envoi du SMS par la fonction ONSTATUS :

Mot clé Définition
ONCHANGE Executed when a tag changes. Valid for a change of value or configuration
ONSTATUS The EVTINFO parameter is set to the ACTIONID of the finished action when command is called.This function can be used to track success or failure of scheduled actions

CreationMessageApi et EnvoiMessageApi en langage BASIC :

CreationMessageApi:
MessageAEnvoyer$=""
FOR a%= 1 TO 160 STEP 1
 MessageAEnvoyer$=MessageAEnvoyer$+CHR$(GETIO("API_ENVOI_MSG"+STR$(a%)))
NEXT a%
Print "Message a envoyer par Api : " + MessageAEnvoyer$
RETURN

 

EnvoiMessageApi:
GoSub CreationMessageApi
//pour indiquer la prise en compte de la demande
Destinataire$ = "+" + STR$(INT(API_ENVOI_Indic_pays@)) + STR$(INT(API_ENV_Num_tel@)) + ",gsm,0"
SENDSMS Destinataire$, MessageAenvoyer$
EnvoiSMSApi = GETSYS PRG,"ACTIONID"
Print "SMS envoyé par Api"
END

Mot clé Définition
GOSUB S1S1:...RETURN When the GOSUB line is executed, the program continues but jumping to Label line.The program executes the code until the RETURN line is met. The RETURN command modifies theprogram pointer to the line immediately following the GOSUB Line.
GETSYS PRG, "ACTIONID" When the function returns, the GETSYS PRG, "ACTIONID" returns the ID of the scheduled action and allows tracking this action. It is also possible to program an ONSTATUS action that will be called when the action is finished (with or without success)

CreationMessageApi concatène le message reçu par les tags MSG1 à MSG160 dans la chaîne MessageAEnvoyer$.

Le tag API_ENVOI_StatusEnvoi est mis à 1 pour indiquer à l’automate la prise en compte de la demande d’envoi du message.
Le numéro de téléphone est formaté avec "+", l’indicatif pays et le n° de téléphone pour la compatibilité avec la fonction SENDSMS.
Le SMS est envoyé avec la fonction SENDSMS.
La surveillance du résultat de l’envoi du SMS est lancée par la fonction GETSYS PRG, "ACTIONID en lien avec la fonction ONSTATUS de la section Init :

Status:
k%=GETSYS PRG,"EVTINFO"
// retour envoi SMS pour api
If k%=EnvoiSMSApi Then
  REM l'action correspond au SENDSMS
  SETSYS PRG, "ACTIONID",k%
  l%=GETSYS PRG,"ACTIONSTAT"
  If k%=0 Then
    // L' envoi du SMS est termine avec succes
    Print "Envoi SMS api : Ok"
    API_ENVOI_StatusEnvoi@=2
  Else
    Print "Envoi SMS api : NOk. Echec de  l'envoi du SMS. Erreur " + Str$(l%)
    API_ENVOI_StatusEnvoi@=3
  Endif
Endif

// retour envoi SMS pour lina
If k%=EnvoiSMSLina Then
  REM l'action correspond au SENDSMS
  SETSYS PRG, "ACTIONID",k%
  l%=GETSYS PRG,"ACTIONSTAT"
  If l%=0 Then
    // L' envoi du SMS est termine avec succes
    Print "Envoi SMS Lina : Ok"
    LINA_ENVOI_StatusEnvoi@=2
  Else
    Print "Envoi SMS Lina : NOk. Echec de  l'envoi du SMS. Erreur " + Str$(l%)
    LINA_ENVOI_StatusEnvoi@=3
  Endif
Endif

Selon le résultat de l’envoi du SMS, la variable API_ENVOI_StatusEnvoi est mise à 2 ou à 3. Cette variable est récupérée par l’automate pour connaître l’issue de l’envoi du SMS.

5.2.4 Programme M340

La séquence M340 présentée est la séquence interne au DFB.
Cette séquence permet d’envoyer un SMS sur mise à 1 du mot DEMANDE_ENVOI.
Remarque : les registres Modbus de l’eWON se lisent et s’écrivent avec un décalage de 1 soit par exemple API_ENVOI_StatusEnvoi = registre 205 se lit en 204.

Prog M340 attente DEMANDE_ENVOI

Figure 20 : Prog M340 attente DEMANDE_ENVOI

Attente ⌛ DEMANDE_ENVOI = 1, initialisation des résultats de l’envoi du SMS : ERREUR_ENVOI et OK_ENVOI.

Écriture du n° tél.

Figure 21 : Écriture du n° tél.

Dans un 1er temps écriture sur l’eWON du n° de téléphone qui reçoit du SMS.

Écriture du message de SMS

Figure 22 : Écriture du message de SMS

Dans un 2e temps écriture sur l’eWON du message de SMS, tags API_ENVOI_MSG1 à API_ENVOI_MSG160. Le message doit être envoyé en 2 parties car une trame Modbus ne peut pas dépasser 256 octets soit 128 mots.

Écrire demande d’envoi du SMS

Figure 23 : Écrire demande d’envoi du SMS

Dans un 3e temps écriture sur l’eWON de la demande d’envoi du SMS, tag API_ENVOI_DmdeEnvoi.

Lire réponse API_ENVOI_StatusEnvoi

Figure 24 : Lire réponse API_ENVOI_StatusEnvoi

Dans un 4e temps, lecture de la réponse de l’eWON, tag API_ENVOI_StatusEnvoi.
Normalement l’eWON acquitte la demande par STATUS_ENVOI = 1, mais attente également du STATUS_ENVOI = 2 (SMS envoyé OK) et STATUS_ENVOI = 3 (SMS échec envoi). Tant qu’une de ces 3 réponses n’est pas obtenue, relecture du mot de STATUS

Relecture du mot de STATUS

Figure 25 : Relecture du mot de STATUS

Dans un 5e temps lecture de la réponse de l’eWON, tag API_ENVOI_StatusEnvoi.
Attente du STATUS_ENVOI = 2 (SMS envoyé OK) et STATUS_ENVOI = 3 (SMS échec envoi). Tant qu’une de ces 2 réponses n’est pas obtenue, relecture du mot de STATUS.

Écriture de la fin d’envoi du SMS

Figure 26 : Écriture de la fin d’envoi du SMS

Dans un 6e temps écriture sur l’eWON de la fin d’envoi du SMS, tag. API_ENVOI_DmdeEnvoi.
Ce mot doit être récrit autre chose que 1 pour que la fonction ONCHANGE de l’eWON fonctionne à nouveau.

msg à envoyer dans MESSAGE_ENVOI

Figure 27 : msg à envoyer dans MESSAGE_ENVOI

La variable MESSAGE_ENVOI est la chaine de 160 caractères contenant le message à envoyer.

Cette chaîne est ensuite transformée pour que chaque entier du tableau MESSAGE_3 contienne un seul caractère ascii compatible avec l’eWON.

Remarque : dans un automate un caractère ascii est codé sur un octet donc un mot de 16 bit contient par défaut 2 caractères ascii.

5.3 Surveillance d’un mot de vie automate

Exigence Spécification
3 Sur entrée modem inactive, surveillance d’un mot de vie appartenant à un automate.Si le mot de vie n’évolue plus, envoi d’un SMS pour le signaler

5.3.1 Configuration de l’eWON

tag BitDevie M340

Figure 28 : tag BitDevie M340

Déclaration du tag BitDevie correspondant à l’entrée DI1 de l’eWON. Le tag BitDevie ne possède pas d’adresse Modbus. Sur M340, "vie" est en minuscule.

tag COM_ENVOI_MotDeVie M340

Figure 29 : tag COM_ENVOI_MotDeVie M340

Déclaration du tag COM_ENVOI_MotDeVie (registre Modbus 200) correspondant au mot de vie lu dans l’automate ou Lina selon les cas.

tag COM_Secu_Indic_pays_1 à 10

Figure 30 : tag COM_Secu_Indic_pays_1 à 10

Déclaration du tag COM_Secu_Indic_pays_1 (registre Modbus 210) et COM_Secu_Num_tel_1 (registre Modbus 211) correspondant au 1er destinataire du SMS de perte de mot vie.
Déclaration jusqu’à 10 destinataires possible _1 à _10.

5.3.2 Configuration du M340

MOT_VIE InDIC_PAYS_secu

Figure 31 : MOT_VIE InDIC_PAYS_secu

Déclaration du mot de vie pour envoi vers l’eWON.
Déclaration de tableaux (indic_pays et num_tel) contenant les numéros de recpetin des SMS .

Bits_horaires

Figure 32 : Bits_horaires

Dans la section Bits_horaires,  ajouter la gestion du mot de vie. La variable MOT_VIE est incrémentée toutes les secondes. Elle est remise à 0 quand elle atteint 32000. Si l’automate passe en STOP ou si l’automate est éteint, la variable lue par l’eWON n’évoluera plus.

5.3.3 Basic GereMotVie eWON M340

Par défaut, un programme eWON BASIC IDE existe avec deux sections : Cyclic et Init :

Déclaration de deux timers

Figure 33 : Déclaration de deux timers

Dans la section Init, déclarer 2 timers : le n°1 d’une durée de 200 s, le n°2 d’une durée de 15 s.

  1. Timer n°1 envoi le programme vers le label GereMotVie ;
  2. Timer n°2 mémorise dans la variable interne MotDeVie% la valeur du mot de vie automate MotDeVie@.
Mot clé Définition
TSET This function initializes the timer E1 at an E2 time base (in seconds). The timer is read by TGET. To stop a timer, E2 must be set to 0.
ONTIMER This command executes S1 command line when E1 expires.The EVTINFO parameter is set to the timer number when command is called.
gestion d’erreurs

Figure 34 : gestion d’erreurs

La gestion du mot de vie est active si l’entrée Di1 de l’eWON est à 0.
Si par 3 fois de suite soit 3 * 200 = 600 s, le mot de vie n’a pas évolué alors un SMS d’erreur est envoyé. Sinon le compteur est réinitialisé à zéro.
Le message SMS n’est envoyé aux différents destinataires que si l’indicateur pays est différent de 0.
À la fin de l’envoi le compteur « 3 fois de suite » est réinitialisé afin d’envoyer cycliquement le message toutes les 10 mn = 3*200 = 600 s
Remarque : Le compteur 3 fois de suite a été rajouté suite aux tests. Il arrivait que même si la communication était correcte, le mot de vie était identique (problème de tempo et temps de cycle).

5.3.4 Programme M340

DFB EWON_FLEXY_1 prog M340

Figure 35 : DFB EWON_FLEXY_1 prog M340

En entrée du DFB :

  1. le bit opt_vie autorise ou inhibe l’envoi du mot de vie de l’automate vers l’eWON ;
  2. le bit opt_secu autorise ou inhibe l’envoi des numéros de téléphone de réception des SMS de sécurité (mot de vie et perte alimentation) vers l’eWON ;
  3. le bit opt_signal autorise ou inhibe la lecture du signal GSM depuis l’eWON.
Écriture du mot de vie et des n° de tél.

Figure 36 : Écriture du mot de vie et des n° de tél.

L’écriture du mot de vie et des n° de téléphone est exécuté toutes les 5 sec.

lecture du signal GSM est-elle active

Figure 37 : lecture du signal GSM est-elle active

Dans un premier temps, test si l’option lecture du signal GSM est active, sinon saut à l’option « écriture mot de vie ».

Lecture registre API_Signal_GSM

Figure 38 : Lecture registre API_Signal_GSM

Lecture du registre API_Signal_GSM à l'adresse 206 et mise à disposition sur la sortie du DFB SIGNAL_GSM.

Option écrire mot de vie active ?

Figure 39 : Option écrire mot de vie active ?

Dans un deuxième temps, test si l’option « écriture mot de vie » est active, sinon saut à l’option « écriture n° tel sécurité ».

Écriture de MOT_VIE

Figure 40 : Écriture de MOT_VIE

Écriture de la valeur de la variable automate MOT_VIE dans le registre COM_ENVOI_MotDeVie à l'adresse 200 de l’eWON.

Option écrire n° tel sécurité active ?

Figure 41 : Option écrire n° tel sécurité active ?

Dans un troisième temps, test si l’option « écriture n° tel sécurité  » est active, sinon saut au reboublage de la séquence.

Écrire InDIC _PAYS_secu et num_tel*

Figure 42 : Écrire InDIC _PAYS_secu et num_tel*

Écriture des 2 tableaux automates InDIC_PAYS_secu et num_tel_secu dans les registres eWON correspondants : COM_Secu_Indic_pays_1 à COM_Secu_Indic_pays_10 et COM_Secu_Num_tel_1 à COM_Secu_Num_tel_10 adresse 210 à 239.

Attente tempo ou envoi SMS

Figure 43 : Attente tempo ou envoi SMS

Dans un quatrième temps, reboublage de la séquence en 10 pour attente tempo ou envoi SMS.

5.4 Coupure de tension du modem, envoi de SMS

Exigence Spécification
4 Sur coupure de tension du modem, envoi d’un SMS pour le signaler. (le modem sera bien sur secouru par batterie pour l’envoi)

5.4.1 Configuration de l’eWON

Déclaration du tag AlimSecteur correspondant à l’entrée DI2 de l’eWON. Le tag ne possède pas d’adresse Modbus.

Tag AlimSecteur

Figure 44 : Tag AlimSecteur

5.4.2 Configuration du M340

Sans objet

5.4.3 Basic EnvoiDefautAlimSecteur eWON

Par défaut un programme eWON BASIC IDE existe avec une section Cyclic et une section Init

Évènement ONCHANGE

Figure 45 : Évènement ONCHANGE

Dans la section Init déclenchement de la surveillance du tab AlimSecteur par une fonction ONCHANGE.

Si AlimSecteur passe à 0, le programme est envoyé vers le label EnvoiDefautAlimSecteur.
On envoie alors un SMS contenant la message « Defaut alimentation secteur » .

Si AlimSecteur repasse à 1, le programme est envoyé vers le label EnvoiRetourAlimSecteur.
On envoie alors un SMS contenant la message « Retour alimentation secteur ».

Le message SMS n’est envoyé aux différents destinataires que si l’indicateur pays est différent de 0.

Test AlimSecteur

Figure 46 : Test AlimSecteur

5.4.4 Programme M340

Sans objet

5.5 Signaler à l’automate le msg du modem

Modem reçoit un message et le signale à l’automate :

Exigence Spécification
5 Le modem peut recevoir un message et le signaler à l’automate. L’automate doit être capable de traiter le message reçu.

5.5.1 Configuration de l’eWON

Tags MSG1001 à 1160

Figure 47 : Tags MSG1001 à 1160

Déclaration de 160 tags nommés MSG1001 à MSG1160 pour la gestion du message SMS.
Le tag possède MSG1001 possède l’adresse Modbus registre 1001.
Le tag possède MSG1160 possède l’adresse Modbus registre 1160.

Déclaration du tag nommé StatusMessageRecu pour indiquer à l’ automate ou à Lina la réception par l’eWON d’un message SMS : registre Modbus 1201.

Déclaration du tag nommé AcquitMessageRecu pour l’acquittement par l’automate ou par Lina de la lecture du message SMS : registre Modbus 1202.

5.5.2 Configuration du M340

La réception d’un SMS sera faite par LINA pour l’acquittement des alarmes donc le programme n’a pas été développé dans la DFB.

5.5.3 Basic ReceptionSMS eWON

Par défaut un programme eWON BASIC IDE existe avec deux sections : Cyclic et Init.

Section Init

Figure 48 : Section Init

Dans la section Init, on attend ⌛ la réception d’un SMS par la fonction ONSMS. Dans ce cas, le programme saute au label ReceptionSMS.

ONCHANGE AcquitMessageRecu

Figure 49 : ONCHANGE AcquitMessageRecu

On lance également la surveillance de la variable AcquitMessageRecu avec la fonction ONCHANGE. Lorsque la variable passe à 1, le programme saute vers le label AcquitReception

Mot clé Définition
ONSMS Executed when a SMS is received (only for eWON with GSM/GPRS modem)
ONSMS ReceptionSMS

Figure 50 : ONSMS ReceptionSMS

Lors de la réception d’un SMS, le message reçu est découpé et mis dans les tags MSG1001 à MSG1160 afin d’être lu par Lina. Le tag StatutMessageRecu est ensuite mis à 1 pour signaler à Lina la réception d’un message.
Une boucle contrôle que le buffer de réception des SMS est vide avant de quitter la fonction. Il n’est pas possible de savoir combien de message SMS sont en attente de lecture.

Reset de StatutMessageRecu

Figure 51 : Reset de StatutMessageRecu

Lorsque Lina a traité le message, il doit mettre la variable AcquitMessagerecu à 1, l’eWON remet alors le tag StatutMessageRecu à 0.

5.5.4 Programme M340

Cette séquence sera à développer pour une utilisation finale du modem.